<?php
/**
 * vanephp web framework
 * 上下文工具类
 *
 * @author aray <ofree@qq.com>
 * @link http://www.vanephp.com/
 * @copyright Copyright &copy; 2010 aray
 * @license http://www.vanephp.com/license
 * @package core
 */

if ( ! defined ( 'INVANE' ) )
	exit ( '!' );

/**
 * 上下文工具类
 * @author aray
 * @abstract
 */

abstract class context {
	/**
	 * 过滤REQUEST
	 * @param array $request	变量
	 */
	final public static function format ( $request ) {
		if ( MAGIC_QUOTES_GPC ) {
			foreach ( $request as $k => & $v ) {
				if ( ! is_array ( $v ) ) {
					$v = stripcslashes ( $v );
					$v = trim ( $v );
				} else {
					$v = self::format ( $v );
				}
			}
		}
		return $request;
	}
	/**
	 * 获取GET变量
	 * @param string $key		get变量名称
	 * @param mixed $default	如果get变量不存在，使用该默认值
	 */
	final public static function get ( $key, $default = null ) {
		static $_get = null;
		if ( $_get == null )
			$_GET = self::format ( $_GET );
		return isset ( $_GET[$key] ) ? $_GET[$key] : $default;
	}
	/**
	 * 获取post变量
	 * @param string $key		post变量名称
	 * @param mixed $default	如果post变量不存在，使用该默认值
	 */
	final public static function post ( $key, $default = null ) {
		static $_post = null;
		if ( $_post == null )
			$_POST = self::format ( $_POST );
		return isset ( $_POST[$key] ) ? $_POST[$key] : $default;
	}
	/**
	 * 获取request变量
	 * @param string $key		request变量名称
	 * @param mixed $default	如果request变量不存在，使用该默认值
	 */
	final public static function request ( $key, $default = null ) {
		static $_request = null;
		if ( $_request == null )
			$_REQUEST = self::format ( $_REQUEST );
		return isset ( $_REQUEST[$key] ) ? $_REQUEST[$key] : $default;
	}
	/**
	 * 获取COOKIE变量
	 * @param string $key		cookie变量名称
	 * @param string $default	如果cookie变量不存在，使用该默认值
	 */
	final public static function cookie ( $key, $default = null ) {
		static $_cookie = null;
		if ( $_cookie == null )
			$_COOKIE = self::format ( $_COOKIE );
		return isset ( $_COOKIE[$key] ) ? $_COOKIE[$key] : $default;
	}
}